# SPDX-License-Identifier: GPL-2.0-only
menuconfig SND_SOC_INTEL_MACH
	bool "Intel Machine drivers"
	depends on SND_SOC_INTEL_SST_TOPLEVEL || SND_SOC_SOF_INTEL_TOPLEVEL
	help
         Intel ASoC Machine Drivers. If you have a Intel machine that
         has an audio controller with a DSP and I2S or DMIC port, then
         enable this option by saying Y

         Note that the answer to this question doesn't directly affect the
         kernel: saying N will just cause the configurator to skip all
         the questions about Intel ASoC machine drivers.

if SND_SOC_INTEL_MACH

if SND_SOC_INTEL_HASWELL

config SND_SOC_INTEL_HASWELL_MACH
	tristate "Haswell Lynxpoint"
	depends on I2C
	depends on I2C_DESIGNWARE_PLATFORM || COMPILE_TEST
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_RT5640
	help
	  This adds support for the Lynxpoint Audio DSP on Intel(R) Haswell
	  Ultrabook platforms. This is a recommended option.
	  Say Y or m if you have such a device.
	  If unsure select "N".

endif ## SND_SOC_INTEL_HASWELL

if SND_SOC_INTEL_HASWELL || SND_SOC_SOF_BROADWELL

config SND_SOC_INTEL_BDW_RT5677_MACH
	tristate "Broadwell with RT5677 codec"
	depends on I2C
	depends on I2C_DESIGNWARE_PLATFORM || COMPILE_TEST
	depends on GPIOLIB || COMPILE_TEST
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_RT5677
	help
	  This adds support for Intel Broadwell platform based boards with
	  the RT5677 audio codec. This is a recommended option.
	  Say Y or m if you have such a device.
	  If unsure select "N".

config SND_SOC_INTEL_BROADWELL_MACH
	tristate "Broadwell Wildcatpoint"
	depends on I2C
	depends on I2C_DESIGNWARE_PLATFORM || COMPILE_TEST
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_RT286
	help
	  This adds support for the Wilcatpoint Audio DSP on Intel(R) Broadwell
	  Ultrabook platforms.
	  Say Y or m if you have such a device. This is a recommended option.
	  If unsure select "N".
endif ## SND_SOC_INTEL_HASWELL || SND_SOC_SOF_BROADWELL

if SND_SOC_INTEL_BAYTRAIL

config SND_SOC_INTEL_BYT_MAX98090_MACH
	tristate "Baytrail with MAX98090 codec"
	depends on I2C
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_MAX98090
	help
	  This adds audio driver for Intel Baytrail platform based boards
	  with the MAX98090 audio codec. This driver is deprecated, use
	  SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH instead for better
	  functionality.

config SND_SOC_INTEL_BYT_RT5640_MACH
	tristate "Baytrail with RT5640 codec"
	depends on I2C
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_RT5640
	help
	  This adds audio driver for Intel Baytrail platform based boards
	  with the RT5640 audio codec. This driver is deprecated, use
	  SND_SOC_INTEL_BYTCR_RT5640_MACH instead for better functionality.

endif ## SND_SOC_INTEL_BAYTRAIL

if SND_SST_ATOM_HIFI2_PLATFORM || SND_SOC_SOF_BAYTRAIL

config SND_SOC_INTEL_BYTCR_RT5640_MACH
	tristate "Baytrail and Baytrail-CR with RT5640 codec"
	depends on I2C && ACPI
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_ACPI
	select SND_SOC_RT5640
	help
	  This adds support for ASoC machine driver for Intel(R) Baytrail and Baytrail-CR
	  platforms with RT5640 audio codec.
	  Say Y or m if you have such a device. This is a recommended option.
	  If unsure select "N".

config SND_SOC_INTEL_BYTCR_RT5651_MACH
	tristate "Baytrail and Baytrail-CR with RT5651 codec"
	depends on I2C && ACPI
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_ACPI
	select SND_SOC_RT5651
	help
	  This adds support for ASoC machine driver for Intel(R) Baytrail and Baytrail-CR
	  platforms with RT5651 audio codec.
	  Say Y or m if you have such a device. This is a recommended option.
	  If unsure select "N".

config SND_SOC_INTEL_CHT_BSW_RT5672_MACH
	tristate "Cherrytrail & Braswell with RT5672 codec"
	depends on I2C && ACPI
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_ACPI
	select SND_SOC_RT5670
        help
          This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
          platforms with RT5672 audio codec.
          Say Y or m if you have such a device. This is a recommended option.
          If unsure select "N".

config SND_SOC_INTEL_CHT_BSW_RT5645_MACH
	tristate "Cherrytrail & Braswell with RT5645/5650 codec"
	depends on I2C && ACPI
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_ACPI
	select SND_SOC_RT5645
	help
	  This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
	  platforms with RT5645/5650 audio codec.
	  Say Y or m if you have such a device. This is a recommended option.
	  If unsure select "N".

config SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH
	tristate "Cherrytrail & Braswell with MAX98090 & TI codec"
	depends on I2C && ACPI
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_MAX98090
	select SND_SOC_TS3A227E
	help
	  This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
	  platforms with MAX98090 audio codec it also can support TI jack chip as aux device.
	  Say Y or m if you have such a device. This is a recommended option.
	  If unsure select "N".

config SND_SOC_INTEL_CHT_BSW_NAU8824_MACH
	tristate "Cherrytrail & Braswell with NAU88L24 codec"
	depends on I2C && ACPI
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_ACPI
	select SND_SOC_NAU8824
	help
	  This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
	  platforms with NAU88L24 audio codec.
	  Say Y or m if you have such a device. This is a recommended option.
	  If unsure select "N".

config SND_SOC_INTEL_BYT_CHT_CX2072X_MACH
	tristate "Baytrail & Cherrytrail with CX2072X codec"
	depends on I2C && ACPI
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_ACPI
	select SND_SOC_CX2072X
	help
	  This adds support for ASoC machine driver for Intel(R) Baytrail &
	  Cherrytrail platforms with Conexant CX2072X audio codec.
	  Say Y or m if you have such a device. This is a recommended option.
	  If unsure select "N".

config SND_SOC_INTEL_BYT_CHT_DA7213_MACH
	tristate "Baytrail & Cherrytrail with DA7212/7213 codec"
	depends on I2C && ACPI
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_ACPI
	select SND_SOC_DA7213
	help
	  This adds support for ASoC machine driver for Intel(R) Baytrail & CherryTrail
	  platforms with DA7212/7213 audio codec.
	  Say Y or m if you have such a device. This is a recommended option.
	  If unsure select "N".

config SND_SOC_INTEL_BYT_CHT_ES8316_MACH
	tristate "Baytrail & Cherrytrail with ES8316 codec"
	depends on I2C && ACPI
	depends on X86_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_ACPI
	select SND_SOC_ES8316
	help
	  This adds support for ASoC machine driver for Intel(R) Baytrail &
	  Cherrytrail platforms with ES8316 audio codec.
	  Say Y or m if you have such a device. This is a recommended option.
	  If unsure select "N".

endif ## SND_SST_ATOM_HIFI2_PLATFORM || SND_SOC_SOF_BAYTRAIL

if SND_SST_ATOM_HIFI2_PLATFORM

config SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH
	tristate "Baytrail & Cherrytrail platform with no codec (MinnowBoard MAX, Up)"
	depends on I2C && ACPI
	depends on X86_INTEL_LPSS || COMPILE_TEST
	help
	  This adds support for ASoC machine driver for the MinnowBoard Max or
	  Up boards and provides access to I2S signals on the Low-Speed
	  connector. This is not a recommended option outside of these cases.
	  It is not intended to be enabled by distros by default.
	  Say Y or m if you have such a device.

	  If unsure select "N".

endif ## SND_SST_ATOM_HIFI2_PLATFORM

if SND_SOC_INTEL_SKL

config SND_SOC_INTEL_SKL_RT286_MACH
	tristate "SKL with RT286 I2S mode"
	depends on I2C && ACPI
	depends on MFD_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_RT286
	select SND_SOC_DMIC
	select SND_SOC_HDAC_HDMI
	help
	   This adds support for ASoC machine driver for Skylake platforms
	   with RT286 I2S audio codec.
	   Say Y or m if you have such a device.
	   If unsure select "N".

config SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH
	tristate "SKL with NAU88L25 and SSM4567 in I2S Mode"
	depends on I2C && ACPI
	depends on MFD_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_NAU8825
	select SND_SOC_SSM4567
	select SND_SOC_DMIC
	select SND_SOC_HDAC_HDMI
	help
	  This adds support for ASoC Onboard Codec I2S machine driver. This will
	  create an alsa sound card for NAU88L25 + SSM4567.
	  Say Y or m if you have such a device. This is a recommended option.
	  If unsure select "N".

config SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH
	tristate "SKL with NAU88L25 and MAX98357A in I2S Mode"
	depends on I2C && ACPI
	depends on MFD_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_NAU8825
	select SND_SOC_MAX98357A
	select SND_SOC_DMIC
	select SND_SOC_HDAC_HDMI
	help
	  This adds support for ASoC Onboard Codec I2S machine driver. This will
	  create an alsa sound card for NAU88L25 + MAX98357A.
	  Say Y or m if you have such a device. This is a recommended option.
	  If unsure select "N".

endif ## SND_SOC_INTEL_SKL

config SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
	tristate
	select SND_SOC_DA7219
	select SND_SOC_MAX98357A
	select SND_SOC_DMIC
	select SND_SOC_HDAC_HDMI

if SND_SOC_INTEL_APL

config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH
	tristate "Broxton with DA7219 and MAX98357A in I2S Mode"
	depends on I2C && ACPI
	depends on MFD_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
	select SND_HDA_DSP_LOADER
	help
	   This adds support for ASoC machine driver for Broxton-P platforms
	   with DA7219 + MAX98357A I2S audio codec.
	   Say Y or m if you have such a device. This is a recommended option.
	   If unsure select "N".

config SND_SOC_INTEL_BXT_RT298_MACH
	tristate "Broxton with RT298 I2S mode"
	depends on I2C && ACPI
	depends on MFD_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_RT298
	select SND_SOC_DMIC
	select SND_SOC_HDAC_HDMI
	select SND_HDA_DSP_LOADER
	help
	   This adds support for ASoC machine driver for Broxton platforms
	   with RT286 I2S audio codec.
	   Say Y or m if you have such a device. This is a recommended option.
	   If unsure select "N".

endif ## SND_SOC_INTEL_APL

if SND_SOC_INTEL_KBL

config SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH
	tristate "KBL with RT5663 and MAX98927 in I2S Mode"
	depends on I2C && ACPI
	depends on MFD_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_RT5663
	select SND_SOC_MAX98927
	select SND_SOC_DMIC
	select SND_SOC_HDAC_HDMI
	select SND_SOC_INTEL_SKYLAKE_SSP_CLK
	help
	  This adds support for ASoC Onboard Codec I2S machine driver. This will
	  create an alsa sound card for RT5663 + MAX98927.
	  Say Y or m if you have such a device. This is a recommended option.
	  If unsure select "N".

config SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH
        tristate "KBL with RT5663, RT5514 and MAX98927 in I2S Mode"
	depends on I2C && ACPI
	depends on MFD_INTEL_LPSS || COMPILE_TEST
        depends on SPI
        select SND_SOC_RT5663
        select SND_SOC_RT5514
        select SND_SOC_RT5514_SPI
        select SND_SOC_MAX98927
        select SND_SOC_HDAC_HDMI
        help
          This adds support for ASoC Onboard Codec I2S machine driver. This will
          create an alsa sound card for RT5663 + RT5514 + MAX98927.
          Say Y or m if you have such a device. This is a recommended option.
          If unsure select "N".

config SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH
	tristate "KBL with DA7219 and MAX98357A in I2S Mode"
	depends on I2C && ACPI
	depends on MFD_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
	help
	  This adds support for ASoC Onboard Codec I2S machine driver. This will
	  create an alsa sound card for DA7219 + MAX98357A I2S audio codec.
	  Say Y if you have such a device.

config SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH
	tristate "KBL with DA7219 and MAX98927 in I2S Mode"
	depends on I2C && ACPI
	depends on MFD_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_DA7219
	select SND_SOC_MAX98927
	select SND_SOC_MAX98373
	select SND_SOC_DMIC
	select SND_SOC_HDAC_HDMI
	help
	  This adds support for ASoC Onboard Codec I2S machine driver. This will
	  create an alsa sound card for DA7219 + MAX98927 I2S audio codec.
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_INTEL_KBL_RT5660_MACH
	tristate "KBL with RT5660 in I2S Mode"
	depends on I2C && ACPI
	depends on MFD_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_RT5660
	select SND_SOC_HDAC_HDMI
	help
	  This adds support for ASoC Onboard Codec I2S machine driver. This will
	  create an alsa sound card for RT5660 I2S audio codec.
	  Say Y if you have such a device.

endif ## SND_SOC_INTEL_KBL

if SND_SOC_INTEL_GLK || (SND_SOC_SOF_GEMINILAKE  && SND_SOC_SOF_HDA_LINK)

config SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH
	tristate "GLK with RT5682 and MAX98357A in I2S Mode"
	depends on I2C && ACPI
	depends on MFD_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_RT5682
	select SND_SOC_MAX98357A
	select SND_SOC_DMIC
	select SND_SOC_HDAC_HDMI
	select SND_HDA_DSP_LOADER
	help
	   This adds support for ASoC machine driver for Geminilake platforms
	   with RT5682 + MAX98357A I2S audio codec.
	   Say Y if you have such a device.
	   If unsure select "N".

endif ## SND_SOC_INTEL_GLK || (SND_SOC_SOF_GEMINILAKE  && SND_SOC_SOF_HDA_LINK)

if SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC || SND_SOC_SOF_HDA_AUDIO_CODEC

config SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH
	tristate "SKL/KBL/BXT/APL with HDA Codecs"
	select SND_SOC_HDAC_HDMI
	select SND_SOC_DMIC
	# SND_SOC_HDAC_HDA is already selected
	help
	  This adds support for ASoC machine driver for Intel platforms
	  SKL/KBL/BXT/APL with iDisp, HDA audio codecs.
          Say Y or m if you have such a device. This is a recommended option.
	  If unsure select "N".

endif ## SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC || SND_SOC_SOF_HDA_AUDIO_CODEC

if SND_SOC_SOF_HDA_COMMON || SND_SOC_SOF_BAYTRAIL
config SND_SOC_INTEL_SOF_RT5682_MACH
	tristate "SOF with rt5682 codec in I2S Mode"
	depends on I2C && ACPI
	depends on (SND_SOC_SOF_HDA_COMMON && (MFD_INTEL_LPSS || COMPILE_TEST)) ||\
		   (SND_SOC_SOF_BAYTRAIL && (X86_INTEL_LPSS || COMPILE_TEST))
	select SND_SOC_RT5682
	select SND_SOC_DMIC
	select SND_SOC_HDAC_HDMI
	help
	   This adds support for ASoC machine driver for SOF platforms
	   with rt5682 codec.
	   Say Y if you have such a device.
	   If unsure select "N".
endif ## SND_SOC_SOF_HDA_COMMON || SND_SOC_SOF_BAYTRAIL

if (SND_SOC_SOF_COMETLAKE_LP && SND_SOC_SOF_HDA_LINK)

config SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH
	tristate "CML_LP with DA7219 and MAX98357A in I2S Mode"
	depends on I2C && ACPI
	depends on MFD_INTEL_LPSS || COMPILE_TEST
	select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC

endif ## SND_SOC_SOF_COMETLAKE_LP && SND_SOC_SOF_HDA_LINK

endif ## SND_SOC_INTEL_MACH
